// sender.c
#include "mcu_define.h"

// 信号量 P 操作
void sem_wait(int semid) {
    struct sembuf sb = {0, -1, 0};
    semop(semid, &sb, 1);
}

// 信号量 V 操作
void sem_signal(int semid) {
    struct sembuf sb = {0, 1, 0};
    semop(semid, &sb, 1);
}

int create_shmtoserv(int shmid,struct shmseg *shm) {
    

    // 创建共享内存
    shmid = shmget(SHM_KEY, sizeof(struct shmseg), 0666 | IPC_CREAT);
    if (shmid == -1) {
        perror("shmget");
       return 0;
    }

    // 映射共享内存
    shm = (struct shmseg *) shmat(shmid, NULL, 0);
    if (shm == (void *) -1) {
        perror("shmat");
        return 0;
    }

    return 1;
}
